﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>A_Clipboard - 定义 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="A_Clipboard is a built-in variable that reflects the current contents of the Windows clipboard." />
<meta name="ahk:equiv-v1" content="misc/Clipboard.htm" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>A_Clipboard</h1>

<p><em>A_Clipboard</em> 是一个<a href="../Concepts.htm#built-in-variables">内置变量</a>, 它包含当前 Windows 剪贴板中可以用文本形式表示的内容.</p>

<p id="CopiedFiles"><em>A_Clipboard</em> 中的每行文本通常都是以回车和换行符(CR+LF) 结尾, 它们在脚本中表示为 <code>`r`n</code>. 文件(例如从资源管理器窗口中使用 <kbd>Ctrl</kbd>+<kbd>C</kbd> 复制的文件) 被视为文本: 每当在脚本中引用 <em>A_Clipboard</em> 时, 它们会被自动转换为它们的文件名(完整路径). 要逐个提取这些文件, 请参照此例:</p>
<pre><a href="../commands/LoopParse.htm">Loop Parse</a> A_Clipboard, "`n", "`r"
{
    Result := MsgBox("File number " A_Index " is " A_LoopField ".`n`nContinue?",, 4)
    if Result = "No"
        break
}</pre>
<p>要按字母顺序排列文件名, 请使用 <a href="../commands/Sort.htm">Sort</a> 函数. 要把剪贴板中的文件名写入到文件中, 请使用 <code><a href="../commands/FileAppend.htm">FileAppend</a> A_Clipboard "`r`n", "C:\My File.txt"</code>. 要改变脚本持续尝试打开剪贴板的时间 -- 例如另一个程序在使用剪贴板的时候 -- 请使用 <a href="../commands/_ClipboardTimeout.htm">#ClipboardTimeout</a>.</p>

<p><a href="../commands/ClipWait.htm">ClipWait</a> 可用于检测剪贴板何时包含数据(可选包括非文本数据):</p>
<pre>A_Clipboard := ""  <em>; 先让剪贴板为空, 这样可以使用 ClipWait 检测文本什么时候被复制到剪贴板中.</em>
Send "^c"
<a href="../commands/ClipWait.htm">ClipWait</a>  <em>; 等待剪贴板中出现文本.</em>
MsgBox "Control-C copied the following contents to the clipboard:`n`n" A_Clipboard</pre>


<h2>相关</h2>
<ul>
  <li><a href="../commands/ClipboardAll.htm">ClipboardAll</a>: 用于操作剪贴板上的所有内容(如图片和格式).</li>
  <li><a href="../commands/OnClipboardChange.htm">OnClipboardChange</a>: 用于检测和响应剪贴板更改.</li>
</ul>

<h2>示例</h2>
<div class="ex" id="ExNew">
<p><a class="ex_number" href="#ExNew"></a> 赋予剪贴板全新的内容.</p>
<pre>A_Clipboard := "my text"</pre>
</div>

<div class="ex" id="ExEmpty">
<p><a class="ex_number" href="#ExEmpty"></a> 清空剪贴板.</p>
<pre>A_Clipboard := ""</pre>
</div>

<div class="ex" id="ExPlain">
<p><a class="ex_number" href="#ExPlain"></a> 将任何复制的文件, HTML 或其他格式的文本转换为纯文本.</p>
<pre>A_Clipboard := A_Clipboard</pre>
</div>

<div class="ex" id="ExAppend">
<p><a class="ex_number" href="#ExAppend"></a> 追加一些文本到剪贴板.</p>
<pre>A_Clipboard .= " Text to append."</pre>
</div>

<div class="ex" id="ExReplace">
<p><a class="ex_number" href="#ExReplace"></a> 把剪贴板中所有 ABC 替换为 DEF(同时把剪贴板的内容转换为纯文本).</p>
<pre>A_Clipboard := StrReplace(A_Clipboard, "ABC", "DEF")</pre>
</div>

<p><strong>使用 AutoHotkey v1 编写的剪贴板实用工具:</strong></p>
<ul>
  <li><a href="https://www.autohotkey.com/forum/topic2665.html">Deluxe Clipboard</a>: 提供不限数量的私有的命名的剪贴板, 可以用来复制, 剪切, 追加或剪切追加选中的文本.</li>
  <li><a href="https://www.autohotkey.com/forum/topic4836.html">ClipStep</a>: 仅使用键盘上的 <kbd>Ctrl</kbd>-<kbd>X</kbd>-<kbd>C</kbd>-<kbd>V</kbd> 控制多个剪贴板.</li>
</ul>

</body>
</html>